// 3.冒泡排序
// 冒泡排序方法，一个数组从第一个元素开始，每个元素和后面那个元素相比较然后如果前面的大就交换位置，比较完成之后
// 最后一个元素就是最大的元素，然后依次比较倒数第二个、倒数第三个
// 时间复杂度为O(N^2)
const bubbleSort = function (arr: number[]) {
    if (arr.length < 2 || arr == null) {
        return
    }
    for (let i = arr.length - 1; i > 0; i--) {
        for (let j = 0; j < i; j++) {
            if (arr[j] > arr[j + 1]) {
                swap(arr, j, j + 1)
            }
        }
    }
}
const swap = function (arr:number[],i: number,j: number){
    arr[i] = arr[i] ^ arr[j]
    arr[j] = arr[i] ^ arr[j]
    arr[i] = arr[i] ^ arr[j]
}
let arrNum = [1,3,2,4,4,2]
bubbleSort(arrNum)
console.log(arrNum)
export default bubbleSort